package com.bajie.bjlisten.mapper;

import com.bajie.bjlisten.entity.BjEBookShelf;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;
import java.util.Set;

@Mapper
@Repository
public interface BjEBookShelfMapper {

    /**
     * 根据ID查询书架信息
     * @param id
     * @return
     */

    BjEBookShelf findById(@Param("id") String id);

    /**
     * 根据小说ID查询书架信息
     * @param ebook_id
     * @return
     */
    BjEBookShelf findByEbookId(@Param("ebook_id") String ebook_id);

    /**
     * 根据用户ID和小说Id删除书架信息
     * @param user_id
     * @param ebook_id
     */
    @Transactional
    void deleteByEbookIdAndUserId(@Param("user_id") String user_id,@Param("ebook_id") String ebook_id);

    /**
     * 根据用户Id和用户Id查询书架信息
     * @param user_id
     * @param ebook_id
     * @return
     */
    BjEBookShelf findByEbookIdAndUserId(@Param("user_id") String user_id,@Param("ebook_id") String ebook_id);

    /**
     * 插入书架表
     * @param bjEBookShelf
     * @return
     */
    @Transactional
    int saveAndFlush(BjEBookShelf bjEBookShelf);

    //根据小说ID集合和用户查询小说是否加入书架
    Set<BjEBookShelf> findBookShelfByUserId(@Param("userId") String userId);


}
